package com.d3works.apps.account.service.move;

import com.d3works.apps.account.db.Move;
import com.d3works.exception.D3worksException;
import java.time.LocalDate;

public interface MoveInvoiceTermService {
  public void generateInvoiceTerms(Move move) throws D3worksException;

  void roundInvoiceTermPercentages(Move move);

  boolean updateInvoiceTerms(Move move);

  void recreateInvoiceTerms(Move move) throws D3worksException;

  void updateMoveLineDueDates(Move move);

  boolean displayDueDate(Move move);

  LocalDate computeDueDate(Move move, boolean isSingleTerm, boolean isDateChange);

  void updateSingleInvoiceTermDueDate(Move move, LocalDate dueDate);

  String checkIfInvoiceTermInPayment(Move move);
}
